#include<vector>
#include<algorithm>
using namespace std;
class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
    //状态表示 dp[i] 到第i层的花费
    //状态转移方程 dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])
    //初始化   dp[0]=dp[1]=0
    //空间优化 dp0,dp1
        int dp0(0),dp1(0);
        for(int i=2;i<=cost.size();i++){
            int dpi=min(dp0+cost[i-1],dp1+cost[i-2]);
            dp1=dp0,dp0=dpi;
        }
        return dp0;
    }
};